C++复习 decltype

  1. decltype

decltype

  • decltype 用于选择并返回操作数的数据类型

只推断类型,不计算表达式的值

decltype能返回包括顶层const和引用在内的类型

const int ci = 0,&cj = ci;
decltype(ci) x = 0; // x is const int
decltype(cj) y = x; // y is const int&,并初始化绑定x
decltype(cj) z;     // wrong 引用必须初始化
  • decltype与引用
int i = 42,*p=&i,&r=i;

decltype(r)  //int&
decltype(r+0) //int
decltype(*p) //int&
  • decltype((variable))的结果(即带括号的表达式)永远是引用,而decltype(variable)的结果只有当variable本身就是一个引用的时候才是引用。